[(#ENV{erreurs}|table_valeur{positionner}|oui)
	<a name="ajax_ancre" href="[(#ENV{erreurs}|table_valeur{positionner})]"></a>
]
<div class="formulaire_spip formulaire_editer formulaire_#ENV{form}">
	[<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
	<p id="message_attention" class="reponse_formulaire reponse_formulaire_ok[ (#ENV{formulaire_modifie}|non) invisible]">#ENV*{_message_attention}</p>
	[<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
	
	<BOUCLE_editable(CONDITION){si #ENV{editable}|oui}>
	<form method='post' action='#ENV{action}' enctype='multipart/form-data'><div>
		[(#REM) declarer les hidden qui declencheront le service du formulaire 
		parametre : url d'action ]
		#ACTION_FORMULAIRE{#ENV{action}}
		<input style="display:none;" type="submit" class="submit" name="enregistrer" value="<:bouton_enregistrer:>" />

		<ul id="deplacable">
			
			<li id="reinitialiser" class="actions_formulaire[ (#ENV{formulaire_modifie}|non) invisible]">
				<button type="submit" class="submit" name="reinitialiser" value="oui" onclick="return confirm('<:saisies:construire_reinitialiser_confirmer:>')">
					<img src="#CHEMIN{images/formulaire-reinitialiser-24.png}" alt="" />
					<:saisies:construire_reinitialiser:>
				</button>
			</li>

			<BOUCLE_contenu(POUR){tableau #ENV{_contenu}}>
			[(#VAL{saisie}|array_key_exists{#VALEUR}|oui)
				[(#VALEUR**|formidable_generer_saisie_configurable{#ENV**|unserialize})]
			]
			</BOUCLE_contenu>
			<li class="aucun"><em class="attention"><:saisies:construire_aucun_champs:></em></li>
			<//B_contenu>
			
			<B_saisies_disponibles>
			<li class="editer haut saisies_disponibles" id="attrapable">
				<label><:saisies:construire_ajouter_champ:></label>
				<BOUCLE_saisies_disponibles(POUR){tableau #ENV{_saisies_disponibles}}>
				<button type="submit" name="ajouter_saisie" value="#CLE" class="submit ajouter_saisie"[ title="(#VALEUR|table_valeur{description})"] [style="background-image:url((#VALEUR|table_valeur{icone}|sinon{#CHEMIN{images/formulaire-saisie-defaut.png}}))"]>
					<span>[(#VALEUR|table_valeur{titre})]</span>
				</button>
				</BOUCLE_saisies_disponibles>
			</li>
			</B_saisies_disponibles>
		</ul>

		
		[(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
		<!--extra-->
		
		<span class='image_loading'></span>
	</div></form>

	<script type="text/javascript">
		jQuery(function(){
			jQuery('.formulaire_construire_formulaire li.configurable')
				.hover(
					function(){
						jQuery(this)
							.addClass('hover')
							.find('> .actions')
								.show()
							.end()
							.parents('li.configurable:not(.en_configuration)')
								.mouseout();
					},
					function(){
						if (!jQuery(this).is('.en_configuration'))
							jQuery(this)
								.removeClass('hover')
								.find('> .actions')
									.hide()
								.end()
								.parents('li.configurable').eq('0')
									.mouseover();
					}
				)
				.filter(':not(.en_configuration)')
					.find('> .actions')
						.hide()
					.end()
				.end();
			
			// On lance la création des onglets
			formulaire_configurer_onglets();
			
			// Gérer la liste des vérifications
			jQuery('.liste_verifications')
				.each(function(){
					var options = jQuery(this).siblings('.options_verifier').hide();
					var select = jQuery(this).find('select');
					
					select
						.change(function(){
							var montrer = jQuery(this).val() ? jQuery(this).val() : 'soigfeg';
							options.hide().filter('.'+montrer).show();
						})
						.change();
				});
			
			// On déplie toujours les fieldsets plés par défaut
			jQuery('li.fieldset.plie')
				.each(function(){
					jQuery(this)
						.removeClass('plie')
						.find('> fieldset > ul').show();
				});
				
			[(#ENV{erreurs}|non|et{#ENV{_chemin_ui}})
				$.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.core.js}", function(){
				$.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.widget.js}", function(){
				$.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.mouse.js}", function(){
				$.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.sortable.js}", function(){
					if ($.fn.sortable) {
						jQuery( "#deplacable, #deplacable ul" ).sortable({
							revert: true,
							containment: '#deplacable',
							connectWith: "#deplacable, #deplacable ul",
							placeholder: "ui-state-highlight",
							handle: '>.actions .deplacer_saisie',
							start: function(event, ui) {
								jQuery('.ui-state-highlight')
									.css('height', ui.item.css('height'))
									.css('height', '+=20px');
							},
							update: function(event, ui) {
								id = ui.item.data('id');
								ou = ui.item.next().data('id');
								// avant le suivant
								if (!ou) {
									// sinon dans le parent
									ou = ui.item.closest('.fieldset').data('id');
									if (ou) {
										ou = '[(#VAL{91}|chr)]' + ou + '[(#VAL{93}|chr)]';
									}
								}
								url = "#URL_ECRIRE";
								$.get(url, {
									session: '#ENV{_identifiant_session}',
									action: 'deplacer_saisie',
									saisie: id,
									ou: ou
								}, function() {
									//jQuery('input.vide').submit();
									jQuery('#reinitialiser').removeClass('invisible');
									jQuery('#message_attention').removeClass('invisible');
								});
							}
						});
					}
				});});});});
				
				$.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.core.js}", function(){
				$.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.widget.js}", function(){
				$.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.mouse.js}", function(){
				$.getScript("#CHEMIN{#ENV{_chemin_ui}jquery.ui.draggable.js}", function(){
					if ($.fn.draggable) {
						jQuery( "#attrapable" ).draggable({
							connectToSortable: "#deplacable, #deplacable ul",
							helper: "clone"
						});
					}
				});});});});
			]
		});
		
		function formulaire_configurer_onglets(){
			var formulaire_configurer = jQuery('.formulaire_configurer');
			var onglets = jQuery('<ul class="formulaire_configurer-onglets"></ul>');
			var contenus = formulaire_configurer.find('> ul > li.fieldset');
			
			// On ajoute le conteneur des onglets
			formulaire_configurer
				.prepend(onglets);
			
			// On parcourt les contenus pour générer les onglets
			contenus
				.each(function(i){
					// On ajoute un identifiant et une classe
					jQuery(this)
						.attr('id', 'formulaire_configurer-contenu-'+i)
						.addClass('formulaire_configurer-contenu');
					// On récupère le titre (en le cachant au passage)
					var titre = jQuery(this).find('h3').eq(0).hide().text();
					// On crée un onglet
					var onglet = jQuery('<li><a href="#formulaire_configurer-contenu-'+i+'">'+titre+'</a></li>');
					onglet
						.click(function(){
							contenus.hide();
							jQuery(
								jQuery(this)
									.siblings()
										.removeClass('actif')
									.end()
									.addClass('actif')
									.find('a')
										.attr('href')
							).show();
							return false;
						});
					
					// On active le premier onglet au démarrage
					if (i == 0) onglet.addClass('actif');
					
					// S'il y a des erreurs dans cette partie du contenu, on met une classe "erreurs" à l'onglet aussi
					if (jQuery(this).find('li.erreur').length > 0)
						onglet.addClass('erreur');
					
					// On ajoute l'onglet
					onglets
						.append(onglet);
				})
				.hide()
				.eq(0)
					.show();
		}
	</script>
	</BOUCLE_editable>
</div>
